在第三方工具中准备 3D 资产
支持的格式
如果要将使用第三方工具创建的 3D 资产引入 Kanzi Studio,您必须导入或合并资产。 您可以导入或合并以下格式的 3D 资产:
- COLLADA (.dae),用于网格和动画
- Filmbox (.fbx),用于网格、动画和样条
- 用于网格的几何形状定义 (.obj)
第三方工具中不同的导出程序处理内容的方式不同。例如,如果使用 .fbx 无法获得预期的结果,试试 .dae。
准备 3D 资产
当为您的 Kanzi Studio 工程准备 3D 资产时,请记住:
- 尽量少切换材质。为此,您可以合并使用相同材质的网格,并对网格只使用一种材质。这种做法可改善对网格和材质的管理并提高渲染性能。请参阅减少着色器切换。
- 从着色器未使用的网格中移除顶点特性。顶点尺寸越小,访问顶点数据的效率越高,内存消耗越低。导出时,您可以从大多数 3D 建模软件中移除不必要的顶点特性。导出设置通常包括导出的顶点特性列表,如法线、顶点颜色等。例如,如果不使用纹理材质渲染网格渲染,则不需要纹理坐标顶点特性,您可以将其移除。
-
从 .fbx 文件导入 3D 资产时,Kanzi Studio 会自动复制并转为您分配到漫射贴图中的所有纹理。
- 您最好将单个的对象保留在中心,并为中心点选择一个合理的位置。例如,对于椅子,请将中心点设置为椅子与地面接触的那个点。
放置不当的中心点会产生问题,原因在于将对象置于 Kanzi 中并将其添加到层级中或对其进行动画化之后,对象的行为很可能出现异常。此外,当中心点远离所导入的对象时,对象的顶点缓冲区精度会非常低。在 Kanzi Studio 中,有这种问题的对象看上去似乎分辨率很低。
- 不同于第三方 3D 建模软件,Kanzi 使用 OpenGL 着色器对材质进行着色。因此,当导入 3D 资产时,Kanzi Studio 只会导入几个基本材质参数,例如漫射、环境和纹理。此外,Kanzi Studio 不会导入着色模型。
如果您不分配材质,Kanzi Studio 会分配您在工程中设置为默认材质的材质。如果不分配默认材质而且所导入的 3D 内容的材质值无效,Kanzi Studio 将使用鲜绿色调试材质。要更正这一问题,请在导入 3D 资产之后在 Kanzi Studio 中分配材质。请参阅使用材质。
- 导入时,Kanzi Studio 只支持 Blinn-Phong 照明模型。在您的 3D 建模工具中导出 3D 资产之前,请选择 Blinn-Phong 材质(亮度值 > 1)。
- Kanzi Studio 只会导入它支持的光源,包括简单的点光源、方向光和聚光灯。Kanzi Studio 会分别为天空光、物理光、区域光和 Vray 光创建 3D 空节点 (Empty Node 3D)。
- 当建立可移动的透明零部件(例如汽车上的活动门和透明车窗)时,请将它们创建为单独的对象。要在 Kanzi 中执行操作,您必须要么使用排序过滤器,要么为车窗创建单独的渲染通道以正确进行渲染。请参阅使用排序过滤器 (Sorting Filter)。
- 如果希望两个可移动的零部件紧靠在一起(例如车门关闭)时接缝不可见,请在您的第三方工具中编辑法线并将接缝法线合并以使它们指向同一个方向。这会使接缝上的反射显得光滑。
- 您的 3D 建模工具使用的坐标系的方向可能不同于 Kanzi Studio 使用的坐标系的方向,后者可能会在您将资产导入到 Kanzi Studio 时改变它们的方向。您可以在您的建模工具或 Kanzi Studio 中更改资产的方向。要在 Kanzi Studio 中更改 3D 资产的方向:
- 在素材库 (Library) > 资源文件 (Resource Files) > 3D 资产 (3D Assets) 中选择模型。
- 在属性 (Properties) 中,将导入轴变换 (Import Axis Transform) 属性设置为能够表明坐标系方向差异的值。
- 在素材库 (Library) > 资源文件 (Resource Files) > 3D 资产 (3D Assets) 中,右键点击您的模型并选择清理导入 3D 资产文件 (Clean Import 3D Asset File)。
清理导入 3D 资产文件 (Clean Import 3D Asset File) 会首先删除以前导入的 3D 资产和您在 Kanzi Studio 中对 3D 资产进行的所有修改,然后导入选定的 3D 资产。
- 与从第三方工具导入动画相比,在 Kanzi Studio 中使用 Kanzi 动画化工具创建非常简单的动画并在状态机中进行迁移会更轻松一些。如果是创建复杂的动画(例如包含层级的动画),请在第三方工具中创建这些动画并将它们导入到 Kanzi Studio 中。
- 当动画控制器或控制器堆栈中包含复杂内容时,烘焙已经存在于您第三方工具中的动画,或者在导出动画之前对其进行烘焙。将中心点置于中心并设置空的动画控制器(使用冻结变换 (Freeze Transform) 工具将动画归零)以从 0 开始动画时,可以保持数据干净。
-
处理蒙皮的着色器设置骨骼计数,并且会影响单个顶点的骨骼数量。您在一个 Kanzi Studio 工程中仅可使用一个蒙皮网格。
如果在您的 Kanzi Studio 工程中,蒙皮网格不按预期工作:
- 按照打印在日志 (Log) 窗口中消息的指引,在第三方工具中更改网格,并重新导入该网格。
- 如果您要蒙皮的网格过于复杂,尝试将其简化。
- 在映射顶点到骨架之前,在您的内容工具中检查确保骨架没有逆矩阵。逆矩阵通常由于在某些轴上执行翻转或镜像的工具造成。如果您的网格中的骨架有逆矩阵,移除逆矩阵并将顶点重新映射到骨架。
- 在将 3D 资产导入到 Kanzi Studio 之后,如果遇到翻转的网格、多边形、法线或纹理坐标,最好在您的第三方工具中修复这些问题。但如果在第三方工具中无法找到或修复问题,您可以在 Kanzi Studio 中修复其中的一些问题。要在 Kanzi Studio 中翻转网格、多边形、法线或纹理坐标,请在素材库 (Library) > 资源文件 (Resource Files) > 3D 资产 (3D Assets) 中右键点击所导入的 3D 模型并选择翻转 (Flip),然后选择要翻转的对象的类型。
- 当使用复杂的层级时,请在您的第三方工具中创建一个脚本,以保存所有节点的父属性并在使用之前取消这些属性的链接,例如,在 3ds Max 中,对所有对象使用 Reset X-Form 工具,然后重新链接、保存并重新应用旋转角度。
- 少量焊接所有顶点,以确保不存在任何会引发着色错误和产生多余顶点的未焊接顶点。
- 移除无效的顶点。您可以使用矩形选择工具选择一个顶点,并确保该选择显示顶点编号而不是顶点计数,从而找到重复网格。如果其显示选定了两个或更多的顶点,而且它们看上去处于同一个位置,则很可能存在重叠网格。在 3ds Max 中,焊接选定 (Weld Selected) 操作有时无法修复问题,原因在于如果您在使用可编辑的多边形网格类型的类对象,对象本身具有更多的拓扑规则,在某些情况下不宜合并顶点。
- 为避免比例问题,要在正确设置单位和比例后,方可导出您使用的第三方工具中的 3D 内容。您可以在将 3D 资产导入到 Kanzi Studio 之后,调整 3D 资产的比例。请参阅调整所导入 3D 资产的比例:。
- 如果 3D 资产导入 Kanzi Studio 后看起来不正确,请尝试以下操作:
- 将资产导出到 Kanzi Studio 支持的另一种格式。例如,如果已出到 fbx 文件而资产看起来不正确,请将其导出到 dae 文件中。请参阅导入。
- 将资产导回到您从中导出这些资产的第三方工具。如果导出到的 fbx 文件,则检查内容看起来是否正确,您还可以使 Autodesk fbx 检查工具。
如资产在第三方工具中看起来不正确,则更改导出程序的设置。例如,导出为二进制或 ASCII fbx。如果更改导出程序设置依然不能修复此问题,而资产在第三方工具中看起来正确有,请联系 Rightware 支持人员。请参阅提交支持请求。
在 3ds Max 中准备 3D 资产
当在 3ds Max 中为您的 Kanzi Studio 工程准备 3D 资产时,请记住:
- 如果将显示单位比例 (Display Unit Scale) 设置为通用单位 (Generic Units) 以外的任何值,为避免与 Kanzi Studio 和 3ds Max 中的单位比例产生差异,应在 3ds Max 的单位设置 (Units Setup) > 系统单位设置 (System Unit Setup) 中将系统单位比例 (System Unit Scale) 设为与您的显示单位比例 (Display Unit Scale) 相匹配。
- 如果设置对齐 vector,您可以沿 y 轴或 z 轴导出 3D 模型,Kanzi Studio 会更正旋转角度。
- 在导入 Kanzi 期间,烘焙中心点,以使其成为模型原点。
- 至少在有层级时避免使用偏移和非 uniform 的缩放。原因在于即使对象具有不均匀的缩放时,3ds Max 也允许将对象链接到层级。这样,当添加缩放或未缩放的对象时,无论处于哪个阶段,您都可以在层级上取得相同的效果。在过程中,这些信息将丢失,而且无法通过重置来重建这些信息。如果需要使用不均匀的缩放,请只在网格层次执行操作。
- 当使用 UV 时:
- UV 拆分和平滑组会创建两个顶点。拥有硬边缘并非总是最好的情况,但如果拥有 UV 拆分,您可以在同一个位置使用平滑组硬边缘,而不会造成任何负面影响。
- 在平坦的 2D 空间中展开您的 3D 网格,以投射 3D 网格的纹理,从而实现从网格的起点向终点流动。
- 在 UV 编辑窗口中设置平坦的多边形面,并匹配它们的大小以获得最佳效果。
- 在 UV 布局中,在水平和垂直方向对齐相匹配的多边形的顶点,以匹配顶点位置。
- 要获得最大的 UV 布局空间,请缩放多边形以填满 UV 布局。
请注意,如果在 UV 布局中不需要为对象留出整个空间,您可以在可用空间中放置其他对象。这样可以将同一个纹理用于多个对象。
请参阅使用含 UV 的 3D 模型。
- 拓扑和边缘方向。如果 3ds Max 中使用的默认方向不正确,为使多边形较少的模型取得更好的着色效果,请使用编辑多边形 (Edit polygons) > 转向 (Turn)。
- 避免在对象上使用反向缩放或镜像工具,以免产生逆矩阵。镜像工具会创建可用于离线渲染的内容,但矩阵无法用于实时渲染。尝试修复逆矩阵:
- 从层级中移除对象,并对对象使用重置 X 形式 (Reset X-Form) 工具。
- 重新应用最近使用的方向。
- 重新将对象添加到层级中。
- 在导出之前使用重置 X 形式 (Reset X-Form) 工具,以确保不存在任何不需要的缩放或翻转面。请注意,当在层级(3ds Max 中的示意图)中拥有对象时,请在父对象中使用重置 X 形式 (Reset X-Form) 工具,以便在旋转父对象的同时也旋转子对象(操作在 3ds Max 中不可撤销)。为了避免这种情况,请在创建层级之前使用重置 X 形式 (Reset X-Form) 工具,或者在重置对象时将其拆分。您可以使用 MAXScript 解决这一问题,MAX 默认会采用这种方法。
- 要将动画从 3ds Max 转为使用 fbx 文件格式。如果必须使用 Collada,在高级选项 (Advanced Options) 中设置:
- Axis Conversion Up Axis 为 Y-up
- Collada Single Matrix 为 enabled
在 Maya 中准备 3D 资产
当在 Maya 中为您的 Kanzi Studio 工程准备 3D 资产时,请记住:
- 即使视口长宽比、摄像机长宽比和分辨率之间存在细微差别,也会导致布局出现奇怪的效果。
- 摄像机 FOV 目前不从 .fbx 过渡到 Kanzi。在导入 Kanzi 时,为 FOV 分配值 40。要更正这一问题,请将 Maya 摄像机中的 FOV 值复制到 Kanzi 摄像机 (Camera) 节点。
另请参阅
最佳实践
导入 3D 资产
合并 3D 资产
导入
使用含 UV 的 3D 模型
打开导航